home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / forth / pfe-0.000 / pfe-0 / pfe-0.9.13 / README < prev    next >
Encoding:
Text File  |  1995-04-14  |  8.8 KB  |  241 lines

  1. This is the file README and belongs to version 0.9.10 of November, 24 1994
  2. of the portable Forth-environment.
  3. --------------------------------------------------------------------------
  4.  
  5. What is it?
  6. ===========
  7.  
  8. This package contains all neccessary ANSI-C source files to build a
  9. running Forth-environment on most UNIX machines, on DOS and on OS/2.
  10.  
  11. The Forth-system is closely modeled along the new American National
  12. Standard for the programming language Forth. With the exception of the
  13. assembler words I implemented every word of every word set mentioned
  14. in the dpANS-6 document of june 1993.  Additionally it is compatible
  15. to Forth-83.
  16.  
  17. This set of source files is distributed under the GNU general public
  18. license for libraries. See the file COPYING.LIB for conditions.
  19.  
  20. I chose that one to point out that I don't consider programs you write
  21. on top of it a `derived work' of the portable Forth environment. To
  22. violate these conditions you have to do two things together:
  23.  
  24.   - you use a modified pfe to run your program
  25.   - you distribute this program keeping the modification secret
  26.  
  27. Should be easy to avoid.
  28.  
  29.  
  30. Why did I do it?
  31. ================
  32.  
  33. For fun. As an excercise in unix programming. And there was no such
  34. thing. See below, design objectives.
  35.  
  36.  
  37. Design objectives
  38. =================
  39.  
  40. With two elaborate standards at hand, one for C, one for Forth, it
  41. should be possible to build one language in terms of the other and
  42. thus provide both where at least one is available.
  43.  
  44. While I leave the writing of an ANSI-C compiler in Forth to those who
  45. really believe in Forth's superiority and universality, I concentrated
  46. on the manageable part: Providing a Forth-system in ANSI-C that is
  47.  
  48.     - CORRECT    this means not just "no bugs" -- it means all
  49.             the interaction of all parts works as specified
  50.             by the standard AND by traditions as far as I
  51.             know about them.
  52.  
  53.     - COMPLETE    with powerful computers on the desk and power-
  54.             ful programming environments there is no need
  55.             to and no use in strategies like "here kernel,
  56.             there xyz word set" that might be appropriate
  57.             on a microcontroller.
  58.  
  59.     - PORTABLE    I hate to rewrite code because of environmental
  60.             dependencies. Most of the system should be a mere
  61.             interface between two well defined languages.
  62.             There are of course such dependencies. I tried
  63.             to resort to a common subset of all UNIX bahavior
  64.             known to me. Fortunately this in fact allowed
  65.             porting to DOS and OS/2 thanks to the great
  66.             emx-package.
  67.  
  68.     - USABLE    A sole kernel helps noone. It should be a
  69.             development environment. You should be able
  70.             to manage multiple-source-file-projects from
  71.             within.
  72.  
  73.     - SIMPLE    or transparent. At least to my taste.
  74.  
  75. Maybe you miss the design objective SPEED. It was not my goal to
  76. provide the fastest C-based Forth-environment. This would have led to
  77. conflicts with more important goals. We all have fast computers,
  78. haven't we?
  79.  
  80. After all pfe isn't slow. With a little tuning using GNU-C's global
  81. register variable feature it is pretty fast. On an ix86-based system
  82. it seems to run with about two thirds the speed of a direct threaded
  83. assembler Forth (eforth) i.e. benchmarks take 50% more time.
  84.  
  85.  
  86. Status
  87. ======
  88.  
  89. Did I achieve the above objectives?
  90. Some of them. I'll continue -- slowly -- working on it.
  91.  
  92. The system is in use for eighteen month now.  Several quite obvious
  93. and several quite subtle bugs have been fixed. While there surely are
  94. some more, they are not as obvious since the system passes several
  95. test programs, some of them rather sophisticated.
  96.  
  97. Once you get the system running, you'll have
  98.  
  99.     - All ANSI Forth word sets with the exception of the assembler
  100.       hooks `CODE', `END-CODE' etc. Nothing else is missing.
  101.  
  102.     - Several more words provided for compatibility and convenience.
  103.  
  104.     - An interface to a text editor to edit plain text sources
  105.       and the ability to include them.
  106.  
  107.     - A word star lookalike block file editor to write
  108.       source in the old style block format.
  109.  
  110.     - A simple source level debugger -- maybe I should better
  111.       say "single stepper".
  112.  
  113. Thus you'll be able to edit, compile an run programs in a moderately
  114. comfortable way. For the final design of the development environment
  115. your suggestions still are welcome!
  116.  
  117. If you try this system, please keep in mind that it is still under
  118. development. Sometimes new --even stupid-- bugs are introduced while
  119. enhancing functionality or while fixing old ones. I appreciate every
  120. hint to a bug and I fixed every bug I've been told about in the last
  121. months. So please don't hesitate to tell me about whatever seems
  122. wrong. Please check for the latest version via anonymous ftp from
  123.  
  124.     roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-?.?.?.tar.gz
  125.  
  126. (accessible from germany only) or
  127.  
  128.     sunsite.unc.edu:/pub/languages/forth/pfe-?.?.?.tar.gz
  129.  
  130. Please send suggestions and bug reports via e-mail to
  131.  
  132.     duz@roxi.rz.fht-mannheim.de
  133.  
  134.  
  135. Usage
  136. =====
  137.  
  138. For installation refer to the files `INSTALL' and `TUNING'.
  139.  
  140. Once you have it running and see the "ok" prompt after typing return
  141. you can interactively type in forth words. If you mistype, you can
  142. edit the command line and recall old command lines with the arrow
  143. keys. (If you can't then your termcap doesn't work all right and you
  144. can resort to wordstar-like control keys.)
  145.  
  146. To write some more statements try "EDIT-TEXT filename". This will
  147. invoke your favorite text-file editor on the given file. If it
  148. doesn't, first check the environment variable EDITOR, then check the
  149. file "const.h" for the #defined symbol "EDITOR".
  150.  
  151. Having written some code you can load it by "INCLUDE filename".
  152.  
  153. If you prefer the old style block files, give a file to use as
  154. block-file with the -b commandline option. Alternatively you can say
  155. `USING filename' or if the file doesn't exist yet: `USING-NEW
  156. filename'.  Then you can edit a block by `n EDIT-BLOCK'.
  157.  
  158. If your termcap-mechanism works well, the arrow keys and some other
  159. function keys should be active. Quit the editor with ^U and load
  160. blocks with "n LOAD". If it doesn't work well you might not even get a
  161. picture.
  162.  
  163. For more commandline options try the option -h.
  164.  
  165. The interrupt key is remapped to ^U (normally it's ^C) and leads back
  166. to the FORTH input loop. Use it to break out of infinite loops. If you
  167. find the ^U annoying see src/options.h for how to change it. I needed
  168. the ^C for the Wordstar look-and-feel.
  169.  
  170. To terminate the system, type BYE at the command-prompt or press the
  171. keyboard quit key of your system (usually ^\).
  172.  
  173.  
  174. Documentation
  175. =============
  176.  
  177. I started writing a documentation in texinfo format. This will allow
  178. you to view it online or print it in good quality.  There's also an
  179. outdated and hopefully soon superseded man-page that explains some of
  180. the command line options.  All documentation is highly unfinished.
  181.  
  182. For more information please try to get the dpANS-document, which is
  183. an EXCELLENT REFERENCE to this system!  You can (could?) ftp it at
  184. ftp.uu.net in the directory /vendor/minerva/x3j14.
  185.  
  186. Recently the ANSI standard (or the last draft) bacame available as
  187. Word document and in HTML format. From a post of Norm Smith to c.l.f:
  188.  
  189.   "I have uploaded a new HTML version of the DPANS94 document
  190.    to Taygeta.oc.nps.navy.mil. The contents are identical to the
  191.    original posting. The new version, V2.0, has many more hyperlinks.
  192.    Specifically, all (well, at least most :-) of the See: references
  193.    are now linked. Anchors have been added for each section in
  194.    my working copy. This will faculitate filling in many additional
  195.    links in the next version of the document."
  196.  
  197.  
  198. Contributions
  199. =============
  200.  
  201. are welcome! After the kernel is finished now it makes much sense to
  202. share the burden of creating and improving a well rounded programming
  203. environment for all tasks a Forth programmer wants to do. PFE is YOUR
  204. tool. Get involved in it's design!
  205.  
  206. There is a mailing list on pfe which you should subscribe to if you
  207. want to be up to date with the development of the system. Send e-mail
  208. to duz@roxi.rz.fht-mannheim.de if you want to subscribe to that
  209. mailing list.
  210.  
  211.  
  212. Acknowledgements
  213. ================
  214.  
  215. I want to express my gratitude to the people who put their efforts in
  216. the precise descriptions I found in these documents:
  217.  
  218.  - draft proposed American National Standard -- Programming Languages
  219.    -- Forth (X3J14 dpANS-6, June 30, 1993)
  220.  
  221.  - FORTH-83 Standard (August 1983)
  222.  
  223.  - fig-FORTH Installation Manual -- Glossary, Model, Editor
  224.    (Version 1.3, November 1980)
  225.  
  226. Thanks for providing superb development tools:
  227.  
  228.  - Richard Stallman and the FSF, Linus Thorvalds and all who
  229.    contribute to Linux and Eberhard Mattes.
  230.  
  231. Several nice people on the net continuously gave me valuable hints to
  232. bugs and possible improvements, were patient enough to try the very
  233. first releases, made ports to machines I never saw myself and thus kept
  234. me from frustration. If pfe is stable now it is thanks to it's users.
  235. Most notably:
  236.  
  237.    Lennert Benschop, Sean Conner, Holger Dietze, Kevin Haddock,
  238.    Rob Hooft, Giorgio Richelli, Marko Teiste, Guenther Thomsen.
  239.  
  240. Thank You.
  241.